阅读更多

5顶
0踩

互联网

转载新闻 关于HTTPS的七个误解

2015-04-01 11:32 by 副主编 mengyidan1988 评论(0) 有7717人浏览
本文详细讨论了关于HTTPS的七个误解,误解内容包括HTTPS无法缓存、SSL证书很贵、HTTPS太慢等等,以下是原文,希望你可以更透彻地了解HTTPS。



误解七:HTTPS无法缓存

许多人以为,出于安全考虑,浏览器不会在本地保存HTTPS缓存。实际上,只要在HTTP头中使用特定命令,HTTPS是可以缓存的。

微软的IE项目经理Eric Lawrence写道:

引用
“说来也许令人震惊,只要HTTP头允许这样做,所有版本的IE都缓存HTTPS内容。比如,如果头命令是Cache-Control: max-age=600,那么这个网页就将被IE缓存10分钟。IE的缓存策略,与是否使用HTTPS协议无关。(其他浏览器在这方面的行为不一致,取决于你使用的版本,所以这里不加以讨论。)”

Firefox默认只在内存中缓存HTTPS。但是,只要头命令中有Cache-Control: Public,缓存就会被写到硬盘上。下面的图片显示,Firefox的硬盘缓存中有HTTPS内容,头命令正是Cache-Control:Public。



误解六:SSL证书很贵

如果你在网上搜一下,就会发现很多便宜的SSL证书,大概10美元一年,这和一个.com域名的年费差不多。而且事实上,还能找到免费的SSL证书。

在效力上,便宜的证书当然会比大机构颁发的证书差一点,但是几乎所有的主流浏览器都接受这些证书。

误解五:HTTPS站点必须有独享的IP地址

由于IPv4将要分配完毕,所以很多人关心这个问题。每个IP地址只能安装一张SSL证书,这是毫无疑问的。但是,如果你使用子域名通配符SSL证书(wildcard SSL certificate,价格大约是每年125美元),就能在一个IP地址上部署多个HTTPS子域名。比如,https://www.httpwatch.com和https://store.httpwatch.com,就共享同一个IP地址。



另外,UCC(统一通信证书,Unified Communications Certificate)支持一张证书同时匹配多个站点,可以是完全不同的域名。SNI(服务器名称指示,Server Name Indication)允许一个IP地址上多个域名安装多张证书。服务器端,Apache和Nginx支持该技术,IIS不支持;客户端,IE 7+、Firefox 2.0+、Chrome 6+、Safari 2.1+和Opera 8.0+支持。

误解四:转移服务器时要购买新证书

部署SSL证书,需要这样几步:

1. 在你的服务器上,生成一个CSR文件(SSL证书请求文件,SSL Certificate Signing Request)。
2. 使用CSR文件,购买SSL证书。
3. 安装SSL证书。
这些步骤都经过精心设计,保证传输的安全,防止有人截取或非法获得证书。结果就是,你在第二步得到的证书不能用在另一台服务器上。如果你需要这样做,就必须以其他格式输出证书。

比如,IIS的做法是生成一个可以转移的.pfx文件,并加以密码保护。



将这个文件传入其他服务器,将可以继续使用原来的SSL证书了。

误解三:HTTPS太慢

使用HTTPS不会使你的网站变得更快(实际上有可能,请看下文),但是有一些技巧可以大大减少额外开销。

首先,只要压缩文本内容,就会降低解码耗用的CPU资源。不过,对于当代CPU来说,这点开销不值一提。

其次,建立HTTPS连接,要求额外的TCP往返,因此会新增一些发送和接收的字节。但是,从下图可以看到,新增的字节是很少的。



第一次打开网页的时候,HTTPS协议会比HTTP协议慢一点,这是因为读取和验证SSL证书的时间。下面是一张HTTP网页打开时间的瀑布图。



同一张网页使用HTTPS协议之后,打开时间变长了。



建立连接的部分,大约慢了10%。但是,一旦有效的HTTPS连接建立起来,再刷新网页,两种协议几乎没有区别。先是HTTP协议的刷新表现:



然后是HTTPS协议:



某些用户可能发现,HTTPS比HTTP更快一点。这会发生在一些大公司的内部局域网,因为通常情况下,公司的网关会截取并分析所有的网络通信。但是,当它遇到HTTPS连接时,它就只能直接放行,因为HTTPS无法被解读。正是因为少了这个解读的过程,所以HTTPS变得比较快。

误解二:有了HTTPS,Cookie和查询字符串就安全了

虽然无法直接从HTTPS数据中读取Cookie和查询字符串,但是你仍然需要使它们的值变得难以预测。

比如,曾经有一家英国银行,直接使用顺序排列的数值表示session id:



黑客可以先注册一个账户,找到这个cookie,看到这个值的表示方法。然后,改动cookie,从而劫持其他人的session id。至于查询字符串,也可以通过类似方式泄漏。

误解一:只有注册登录页,才需要HTTPS

这种想法很普遍。人们觉得,HTTPS可以保护用户的密码,此外就不需要了。Firefox浏览器新插件Firesheep,证明了这种想法是错的。我们可以看到,在Twitter和Facebook上,劫持其他人的session是非常容易的。

咖啡馆的免费WiFi,就是一个很理想的劫持环境,因为两个原因:

1. 这种WiFi通常不会加密,所以很容易监控所有流量。
2. WiFi通常使用NAT进行外网和内网的地址转换,所有内网客户端都共享一个外网地址。这意味着,被劫持的session,看上去很像来自原来的登录者。
以Twitter为例,它的登录页使用了HTTPS,但是登录以后,其他页面就变成了HTTP。这时,它的cookie里的session值就暴露了。



也就是说,这些cookie是在HTTPS环境下建立的,但是却在HTTP环境下传输。如果有人劫持到这些cookie,那他就能以你的身份在Twitter上发言了。
  • 大小: 139.5 KB
  • 大小: 33.1 KB
  • 大小: 14.4 KB
  • 大小: 12.4 KB
  • 大小: 19 KB
  • 大小: 7.7 KB
  • 大小: 10.3 KB
  • 大小: 7.2 KB
  • 大小: 7.4 KB
  • 大小: 4.9 KB
  • 大小: 31.1 KB
来自: linux.cn
5
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题

    a.type = “text/javascript”; a.src=path; var head=document.getElementsByTagName(“head”)[0]; head.appendChild(a); } include(“http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js”) 这样的脚本...

  • 记一个奇怪js问题

    项目中功能1和功能2公用一个模版,但是功能1可以,功能2提示:javascript - Uncaught ReferenceError: validate is not defined? -debug思路: 0, js 没有没有编译 0-1, 对比git提交记录,定位问题函数 1,查看...

  • 一个奇怪的问题使用ajax提交必须alert才能赋值

    一个奇怪的问题,在使用ajax提交的时候将返回值赋给一个变量,无论怎么写都没法赋值,刚开始怀疑js有错但是ie没有反应过来,多次清缓存、部程序都没效果。。。。。。最后只好一行一行的alert看原因出在哪里;奇怪的...

  • JavaScript 防抖和节流遇见的奇怪问题及解决

    场景 网络上已经存在了大量的有关 防抖 和 节流 的文章,为何吾辈还要再写一篇呢?事实上,防抖和节流,吾辈在...我们先实现一个简单的去抖函数 function debounce(delay, action) { let tId return function(...a

  • 在网页中使用[removed]时遭遇的奇怪问题

    很多时候我们都会在网页上的JavaScript中使用[removed]来写入一些东西,有的时候可能因为我们无法改变某一部分HTML而不得不使用这样的办法,也有的时候是因为在进行跨应用的脚本调用。

  • 记录一个vue3使用router遇到的奇怪问题

    使用路由标签一直报错: [Vue warn]: Failed to resolve component: ... at 搞了好久找到原因,在main.js中如下 app.use中先引入了Ant,再引入了router。此时就会报上面的错误。 将顺序换一下 就解决了上面的问题。

  • 统信UOS和vue.js的一个兼容问题

    统信UOS和vue.js的一个兼容问题。

  • vscode代码补全一个非常奇怪的问题

    比较诡异的是,就只有这一个项目有这个问题,有用其他的node项目和ts项目和单独的js文件验证过都是正常的,建议基本都是瞬间就出来了 尝试过这些方式,都没有效果,大概尝试了这些: 1、在vscode设置里修改 Quick ...

  • minions:我们用于 nodeJS 和浏览器的一组奇怪的 Javascript 小助手

    奴才 一组奇怪的 JavaScript 小助手

  • field-js:一种非常奇怪的计算语言(设计尖峰)

    现场语言 field语言实际上很奇怪,这很多来自我。 稍后我必须解释。 这是field解释器的设计尖峰。

  • js上层引用的一个奇怪的问题

    上层引用../的时候不可以在出目录,需要直接是文件,否则找不到文件而失效 这样可以: ...<script type="text/javascript" src="../...<script type="text/javascript" src="../js/jquery-1.9.1.js">

  • dr-js:奇怪功能的集合

    奇怪功能的集合 :file_folder: 输出包中的主要源代码为: @dr-js/core/library :可直接使用,请使用require() / exports.*=并具有Dr.browser.js @dr-js/core/module :用于重新打包,保持import / export和...

  • JSS:一个带有单个JS文件CSS预编译器

    设置下载最新的JSS.js文件将脚本标签添加到您的网站,以加载JSS.js文件添加一个链接标记,该标记链接到与CSS文件相同的jss文件。 只需将rel="stylesheet"更改为rel="jss" 。<html><head><link ref=...

  • transform.js:Transform.js 是一个用于将 3D 点投影到 2D 空间的小型 JavaScript 库

    转换.js Transform.js 是一个用于将 3D 点投影到 2D 空间的小型 JavaScript 库。 Transform.js不是3D 渲染器。 不要尝试渲染网格,因为如果您希望深度映射起作用,您会得到奇怪的结果。 线和点都很好。

  • JavaScript 用两种方法做一个简易计算器

    第一种 使用基本数据类型 ... var num1 = prompt('请输入第一个数:'); return parseFloat(num1); } function input2(){ var num2 = prompt('请输入第二个数:'); return parseFloat(num2); } // 1. 加法运算 function

  • 【JS】1400- 6 个意想不到的 JavaScript 问题

    作为前端开发工程师,JavaScript 是我们的主要开发语言,它本身语法...本文灵感来自 wtfjs[1],整理了 6 个比较常见并且很有意思的问题。1. 奇怪的 try..catch❓问题下面代码执行后将返回什么?2 还是 3?(()=>{...

  • JavaScript中0和””比较引发的问题

    今天在公司的时候发现了一个很奇怪的Js的问题,以前也没有注意到,我从数据库中取出某一个字段的值,而这个字段值刚好是0,然后我在判断这个值是不是等于””时,就出现了如下的问题: 就是JS认为0==””是成立的,...

  • 求助关于JavaScript中,变量重新赋值后类型不变,很奇怪的一个问题

    示例如下: <script> var name="清欢"; //此时name的基本数据类型为String,正常 alert("name的基本数据类型为:&... //给name变量重新赋值,此时name的数据类型应该变为number .../...

  • 安装NumPy教程-详细版

    附件是安装NumPy教程_详细版,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的!

  • 语音端点检测及其在Matlab中的实现.zip

    语音端点检测及其在Matlab中的实现.zip

Global site tag (gtag.js) - Google Analytics